C语言数组与字符串处理
📚 共计 30 章节
01
数组初探
一维数组的定义、初始化与遍历,理解数组在内存中的连续存储特性。
一维数组
内存连续
02
数组进阶
二维数组与多维数组,数组作为函数参数传递的陷阱与正确姿势。
二维数组
参数传递
03
字符数组与字符串
字符数组与字符串字面量的区别,字符串的输入输出(gets、fgets、puts)。
字符数组
输入输出
04
字符串处理函数
strlen、strcpy、strcat、strcmp 的用法与手写实现,以及常见的安全问题。
标准函数
手写实现
05
综合实战
数组与字符串在项目中的应用,如学生成绩管理系统、字符串加密解密。
项目实战
加密解密
06
数组与指针的纠缠
数组名与指针的关系,指针算术运算,通过指针操作数组元素。
指针
算术运算
07
动态数组
malloc、calloc、realloc 动态分配数组,柔性数组在结构体中的应用。
动态内存
柔性数组
08
字符串查找与分割
strstr、strchr、strtok 的用法,手写一个简单的字符串分割函数。
查找
分割
09
字符串与数字转换
atoi、atof、sprintf、sscanf 的用法,手写 itoa 函数。
类型转换
手写itoa
10
数组排序算法
冒泡排序、选择排序在数组上的实现,qsort 函数的使用。
排序
qsort
11
数组查找算法
线性查找与二分查找,手写二分查找算法。
查找
二分
12
字符串匹配算法
朴素匹配与 KMP 算法的原理与 C 语言实现。
KMP
朴素匹配
13
数组去重与合并
一维数组去重算法,两个有序数组合并为一个有序数组。
去重
合并
14
字符串反转与回文
字符串原地反转,判断回文字符串,最长回文子串的简单实现。
反转
回文
15
数组的旋转与移位
数组左旋、右旋,循环移位算法。
旋转
移位
16
字符串压缩与解压
如 'aaabbbcc' 压缩为 'a3b3c2',以及解压还原。
压缩
解压
17
数组与矩阵运算
矩阵加法、乘法,转置矩阵的 C 语言实现。
矩阵
转置
18
字符串的排列与组合
全排列的递归实现,字符串的所有子集。
排列
子集
19
数组的众数与中位数
寻找数组中出现次数最多的元素,寻找中位数。
众数
中位数
20
字符串的编辑距离
莱文斯坦距离的递归与动态规划实现。
编辑距离
动态规划
21
数组的区间合并
合并重叠区间,插入新区间。
区间
合并
22
字符串的括号匹配
检查括号是否匹配,生成有效的括号组合。
括号
匹配
23
数组的滑动窗口
固定窗口与可变窗口的最大值、最小值问题。
滑动窗口
最值
24
字符串的字典序
字符串排序,寻找字典序的下一个排列。
字典序
排列
25
数组的差分与前缀和
一维差分数组,前缀和在区间求和中的应用。
差分
前缀和
26
字符串的哈希
BKDR 哈希算法,字符串哈希在去重与查找中的应用。
哈希
BKDR
27
数组的约瑟夫环
约瑟夫环问题的数组模拟与数学解法。
约瑟夫环
模拟
28
字符串的 Base64 编码
Base64 编码原理与 C 语言实现。
Base64
编码
29
数组的稀疏表示
稀疏数组的压缩存储,三元组表示法。
稀疏数组
三元组
30
综合项目:JSON 解析器雏形
基于数组与字符串的 JSON 解析器雏形。
JSON
解析器